package com.house.entity;

import com.fasterxml.jackson.annotation.JsonProperty;
import jakarta.validation.constraints.*;
import lombok.Data;

import java.time.LocalDateTime;

@Data
public class User {

    private Long id;//主键ID
    @NotBlank(message = "用户名不能为空")
    @Pattern(regexp = "^\\S{5,16}$", message = "用户名长度必须在5到16个字符之间，且不能包含空格")
    private String username;//用户名
    @NotBlank(message = "密码不能为空")
    @Pattern(regexp = "^\\S{5,16}$", message = "密码长度必须在5到16个字符之间，且不能包含空格")
    @JsonProperty(access = JsonProperty.Access.WRITE_ONLY) // 允许反序列化，不允许序列化
    private String password;//密码
    @Email
    private String email;//邮箱
    private String phone;//电话号码
    private String role;//角色： 管理员、房东、租客
    private LocalDateTime created_at;//创建时间
    private LocalDateTime updated_at;//更新时间
    private Integer status;//账户状态： 0正常 1禁用 2冻结
}
